home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / pibt40s2.arc / KDISPLAY.MOD < prev    next >
Text File  |  1987-08-24  |  11KB  |  382 lines

  1. (*----------------------------------------------------------------------*)
  2. (*    Initialize_Display --- Set up status display of Kermit transfer   *)
  3. (*----------------------------------------------------------------------*)
  4.  
  5. PROCEDURE Initialize_Display;
  6.  
  7. (*----------------------------------------------------------------------*)
  8. (*                                                                      *)
  9. (*     Procedure:  Initialize_Display                                   *)
  10. (*                                                                      *)
  11. (*     Purpose:    Initializes status display for Kermit transfers      *)
  12. (*                                                                      *)
  13. (*     Calling Sequence:                                                *)
  14. (*                                                                      *)
  15. (*        Initialize_Display;                                           *)
  16. (*                                                                      *)
  17. (*----------------------------------------------------------------------*)
  18.  
  19. VAR
  20.    I: INTEGER;
  21.  
  22. BEGIN (* Initialize_Display *)
  23.  
  24.    IF ( NOT Display_Status ) THEN EXIT;
  25.  
  26.    Draw_Menu_Frame( 15, 5, 78, 20, Menu_Frame_Color, Menu_Title_Color,
  27.                     Menu_Text_Color, Kermit_Menu_Title );
  28.  
  29.    Window( 16, 6, 77, 19 );
  30.  
  31.    TextColor( Menu_Text_Color_2 );
  32.  
  33.    FOR I := 1 TO 5 DO
  34.       BEGIN
  35.          GoToXY( 1 , I );
  36.          IF Sending_File THEN
  37.             WRITE(' ', Send_Titles[I] )
  38.          ELSE
  39.             WRITE(' ', Receive_Titles[I] );
  40.          ClrEol;
  41.       END;
  42.  
  43.    FOR I := 6 TO 14 DO
  44.       BEGIN
  45.          GoToXY( 1 , I );
  46.          WRITE(' ', Line_Titles[I] );
  47.          ClrEol;
  48.       END;
  49.  
  50.    GoToXY( 1 , Kermit_Title_Line );
  51.    WRITE( Key_Title );
  52.    ClrEol;
  53.  
  54.    TextColor( Menu_Text_Color );
  55.  
  56. END   (* Initialize_Display *);
  57.  
  58. (*----------------------------------------------------------------------*)
  59. (*   Initialize_Logout_Display --- Set up display for server logout     *)
  60. (*----------------------------------------------------------------------*)
  61.  
  62. PROCEDURE Initialize_Logout_Display;
  63.  
  64. (*----------------------------------------------------------------------*)
  65. (*                                                                      *)
  66. (*     Procedure:  Initialize_Logout_Display                            *)
  67. (*                                                                      *)
  68. (*     Purpose:    Initializes logout display                           *)
  69. (*                                                                      *)
  70. (*     Calling Sequence:                                                *)
  71. (*                                                                      *)
  72. (*        Initialize_Logout_Display;                                    *)
  73. (*                                                                      *)
  74. (*----------------------------------------------------------------------*)
  75.  
  76. BEGIN (* Initialize_Logout_Display *)
  77.  
  78.    IF ( NOT Display_Status ) THEN EXIT;
  79.  
  80.    Draw_Menu_Frame( 15, 5, 78, 20, Menu_Frame_Color, Menu_Title_Color,
  81.                     Menu_Text_Color, 'Logging out remote server' );
  82.  
  83.    Window( 16, 6, 77, 19 );
  84.  
  85.    TextColor( Menu_Text_Color_2 );
  86.  
  87.    GoToXY( 1 , 1 );
  88.    WRITE( ' ', Send_Titles[1] );
  89.    ClrEol;
  90.  
  91.    GoToXY( 1 , 3 );
  92.    WRITE( ' ', Send_Titles[3] );
  93.    ClrEol;
  94.  
  95.    GoToXY( 1 , 11 );
  96.    WRITE( ' ' , Line_Titles[11] );
  97.    ClrEol;
  98.  
  99.    TextColor( Menu_Text_Color );
  100.  
  101. END   (* Initialize_Logout_Display *);
  102.  
  103. (*----------------------------------------------------------------------*)
  104. (*  Display_Kermit_Init_Params --- Display Kermit init. parameters      *)
  105. (*----------------------------------------------------------------------*)
  106.  
  107. PROCEDURE Display_Kermit_Init_Params;
  108.  
  109. VAR
  110.    Quote_8: CHAR;
  111.  
  112. BEGIN (* Display_Kermit_Init_Params *)
  113.  
  114.    IF Display_Status THEN
  115.       BEGIN
  116.  
  117.          GoToXY( 25 , 6 );
  118.  
  119.          IF Sending_File THEN
  120.             Quote_8 := Kermit_Quote_8_Char
  121.          ELSE
  122.             Quote_8 := His_Quote_8_Char;
  123.  
  124.          IF Quoting THEN
  125.             WRITE('ON using <',Quote_8,'>')
  126.          ELSE
  127.             WRITE('OFF');
  128.  
  129.          ClrEol;
  130.  
  131.          GoToXY( 25 , 7 );
  132.  
  133.          CASE His_Chk_Type OF
  134.             '1':  WRITE('1 character checksum');
  135.             '2':  WRITE('2 character checksum');
  136.             '3':  WRITE('3 character CRC');
  137.          END (* CASE *);
  138.  
  139.          ClrEol;
  140.  
  141.          GoToXY( 25 , 8 );
  142.  
  143.          IF Repeating THEN
  144.             WRITE('ON using <',His_Repeat_Char,'>')
  145.          ELSE
  146.             WRITE('OFF');
  147.  
  148.          ClrEol;
  149.  
  150.          GoToXY( 25 , 9 );
  151.  
  152.          IF Kermit_Do_Sliding_Win THEN
  153.             WRITE('ON with window size ', His_Kermit_Window_Size )
  154.          ELSE
  155.             WRITE('OFF');
  156.  
  157.          ClrEol;
  158.  
  159.          GoToXY( 25 , 10 );
  160.  
  161.          IF Kermit_Do_Long_Blocks THEN
  162.             WRITE('ON with maximum size ', His_Kermit_MaxLX1 * 95 + His_Kermit_MaxLX2 )
  163.          ELSE
  164.             WRITE('OFF');
  165.  
  166.          ClrEol;
  167.  
  168.       END;
  169.  
  170. END   (* Display_Kermit_Init_Params *);
  171.  
  172. (*----------------------------------------------------------------------*)
  173. (*        Flip_Display_Status --- turn status display on/off            *)
  174. (*----------------------------------------------------------------------*)
  175.  
  176. PROCEDURE Flip_Display_Status;
  177.  
  178. BEGIN (* Flip_Display_Status *)
  179.  
  180.    IF ( NOT Kermit_Screen_Write ) THEN
  181.       CASE Display_Status OF
  182.  
  183.          TRUE:   BEGIN
  184.                                    (* Indicate no display   *)
  185.  
  186.                     Display_Status := FALSE;
  187.  
  188.                                    (* Remove display window  *)
  189.  
  190.                     Restore_Screen( Kermit_Local_Save );
  191.  
  192.                     Reset_Global_Colors;
  193.  
  194.                                    (* Restore cursor *)
  195.                     CursorOn;
  196.  
  197.                  END;
  198.  
  199.          FALSE:  BEGIN
  200.                                    (* Indicate display will be done *)
  201.  
  202.                     Display_Status := TRUE;
  203.  
  204.                                    (* Hide cursor *)
  205.                     CursorOff;
  206.                                    (* Save screen image *)
  207.  
  208.                     Save_Screen( Kermit_Local_Save );
  209.  
  210.                                    (* Initialize display window     *)
  211.  
  212.                     IF Logging_Out_Server THEN
  213.                        Initialize_Logout_Display
  214.                     ELSE
  215.                        BEGIN
  216.                           Initialize_Display;
  217.                           Display_Kermit_Init_Params;
  218.                        END;
  219.  
  220.                  END;
  221.  
  222.       END (* CASE *);
  223.  
  224. END   (* Flip_Display_Status *);
  225.  
  226. (*----------------------------------------------------------------------*)
  227. (*      Convert_Real_To_String --- Convert real # to printable string   *)
  228. (*----------------------------------------------------------------------*)
  229.  
  230. FUNCTION Convert_Real_To_String( X : REAL ) : ShortStr;
  231.  
  232. VAR
  233.    S: STRING[10];
  234.    I: INTEGER;
  235.  
  236. BEGIN (* Convert_Real_To_String *)
  237.  
  238.    STR( X : 10 : 0 , S );
  239.  
  240.    I := 1;
  241.  
  242.    WHILE( S[I] = ' ' ) DO
  243.       I := SUCC( I );
  244.  
  245.    Convert_Real_To_String := COPY( S , I , ORD(S[0]) - I + 1 );
  246.  
  247. END   (* Convert_Real_To_String *);
  248.  
  249. (*----------------------------------------------------------------------*)
  250. (*      Update_Kermit_Display --- Update display of Kermit transfer     *)
  251. (*----------------------------------------------------------------------*)
  252.  
  253. PROCEDURE Update_Kermit_Display;
  254.  
  255. BEGIN (* Update_Kermit_Display *)
  256.  
  257.    IF ( Display_Status ) THEN
  258.       BEGIN
  259.  
  260.          GoToXY( 25 , 1 );
  261.          IF Sending_File THEN
  262.             WRITE( Convert_Real_To_String( Packets_Sent ) )
  263.          ELSE
  264.             WRITE( Convert_Real_To_String( Packets_Received ) );
  265.  
  266.          IF ( NOT Logging_Out_Server ) THEN
  267.             BEGIN
  268.                GoToXY( 25 , 2 );
  269.                WRITE( Convert_Real_To_String( Buffer_Num ) );
  270.                ClrEol;
  271.             END;
  272.  
  273.          GoToXY( 25 , 3 );
  274.          WRITE( Convert_Real_To_String( Packets_Bad ) );
  275.  
  276.          GoToXY( 25 , 5 );
  277.          IF Kermit_Doing_Transfer THEN
  278.             WRITE ( Kermit_Window_Bottom, ' : ', Kermit_Window_Top );
  279.          ClrEol;
  280.  
  281.       END;
  282.  
  283. END   (* Update_Kermit_Display *);
  284.  
  285. (*----------------------------------------------------------------------*)
  286. (*  Display_Kermit_Message --- Display Kermit reception status message  *)
  287. (*----------------------------------------------------------------------*)
  288.  
  289. PROCEDURE Display_Kermit_Message( Status_Text: AnyStr );
  290.  
  291. BEGIN (* Display_Kermit_Message *)
  292.  
  293.    IF ( NOT Display_Status ) THEN
  294.       Flip_Display_Status;
  295.  
  296.    IF Display_Status THEN
  297.       BEGIN
  298.  
  299.          Update_Kermit_Display;
  300.  
  301.          GoToXY( 25 , Kermit_Mess1_Line );
  302.          WRITE( Status_Text );
  303.          ClrEol;
  304.  
  305.      END;
  306.  
  307.    Write_Log( Status_Text, TRUE, FALSE );
  308.  
  309. END   (* Display_Kermit_Message *);
  310.  
  311. (*----------------------------------------------------------------------*)
  312. (* Display_Kermit_Message_2 --- Display Kermit reception status message *)
  313. (*----------------------------------------------------------------------*)
  314.  
  315. PROCEDURE Display_Kermit_Message_2( Status_Text: AnyStr );
  316.  
  317. BEGIN (* Display_Kermit_Message_2 *)
  318.  
  319.    IF ( NOT Display_Status ) THEN
  320.       Flip_Display_Status;
  321.  
  322.    IF Display_Status THEN
  323.       BEGIN
  324.  
  325.          Update_Kermit_Display;
  326.  
  327.          GoToXY( 2 , Kermit_Mess2_Line );
  328.          WRITE( Status_Text );
  329.          ClrEol;
  330.  
  331.       END;
  332.  
  333.    Write_Log( Status_Text, TRUE, FALSE );
  334.  
  335. END   (* Display_Kermit_Message_2 *);
  336.  
  337. (*----------------------------------------------------------------------*)
  338. (* Display_Kermit_Message_3 --- Display Kermit reception status message *)
  339. (*----------------------------------------------------------------------*)
  340.  
  341. PROCEDURE Display_Kermit_Message_3( Status_Text: AnyStr );
  342.  
  343. BEGIN (* Display_Kermit_Message_3 *)
  344.  
  345.    IF ( NOT Display_Status ) THEN
  346.       Flip_Display_Status;
  347.  
  348.    IF Display_Status THEN
  349.       BEGIN
  350.  
  351.          Update_Kermit_Display;
  352.  
  353.          GoToXY( 2 , Kermit_Mess3_Line );
  354.          WRITE( Status_Text );
  355.          ClrEol;
  356.  
  357.       END;
  358.  
  359.    Write_Log( Status_Text, TRUE, FALSE );
  360.  
  361. END   (* Display_Kermit_Message_3 *);
  362.  
  363. (*----------------------------------------------------------------------*)
  364. (*       Kermit_Clear_Message_Lines --- Clear Kermit message lines      *)
  365. (*----------------------------------------------------------------------*)
  366.  
  367. PROCEDURE Kermit_Clear_Message_Lines;
  368.  
  369. BEGIN (* Kermit_Clear_Message_Lines *)
  370.  
  371.    IF Display_Status THEN
  372.       BEGIN
  373.  
  374.          GoToXY( 1 , Kermit_Mess2_Line );
  375.          ClrEol;
  376.  
  377.          GoToXY( 1 , Kermit_Mess3_Line );
  378.          ClrEol;
  379.  
  380.       END;
  381.  
  382. END   (* Kermit_Clear_Message_Lines *);